import tkinter
import time
import random
class Ball():
    def __init__(self,canvas,color):
        self.canvas = canvas
        self.id=canvas.create_oval(0,0,35,35,fill=color)
        canvas.move(self.id,395,250)
        level=[-9,-7,-5,-3,-1,1,3,5,7,9]
        self.x=random.choice(level)
        self.y=random.choice(level)
    def draw(self):
        l1=[-9,-7,-5,-3,-1]
        l2=[1,3,5,7,9]
        canvas.move(self.id,self.x,self.y)
        pos=canvas.coords(self.id)
        if pos[3]>=600:
            self.y=random.choice(l1)
        if pos[1]<=0:
            self.y=random.choice(l2)
        if pos[2]>=800:
            self.x=random.choice(l1)
        if pos[0]<=0:
            self.x=random.choice(l2)
class Paddle():
    def __init__(self,canvas,color):
        self.canvas = canvas
        self.id=canvas.create_rectangle(0,0,250,20,fill=color)
        canvas.move(self.id, 200, 450)
        self.x=3
        self.y=0
        self.canvas.bind_all('<KeyPress-Left>',self.turn_left)
        self.canvas.bind_all('<KeyPress-Right>', self.turn_right)
    def turn_left(self,evt):
        self.x=-3
    def turn_right(self, evt):
            self.x = 3
    def draw(self):
        canvas.move(self.id,self.x,self.y)
        pos=canvas.coords(self.id)
        if pos[3]>=600:
            self.y=-3
        if pos[1]<=0:
            self.y=3
        if pos[2]>=800:
            self.x=-3
        if pos[0]<=0:
            self.x=3
class Score():
    def __init__(self,canvas,color):
        self.canvas = canvas
        self.score=0
        self.id=canvas.create_rectangle(750,10,text=self.score,fill=color)

tk = tkinter.Tk()
tk.title("弹球小游戏")
canvas=tkinter.Canvas(tk,width=800,height=600)
canvas.pack()
tk.update()

ball=Ball(canvas,"blue")
paddle=Paddle(canvas,"red")
while 1:
    ball.draw()
    paddle.draw()
    tk.update_idletasks()
    tk.update()
    time.sleep(0.01)
